package lambda_expression.method_reference;

import java.util.function.BiFunction;
import java.util.function.BiPredicate;

/**
 * [ 类::实例方法名 ]
 *
 * 使用注意: 若Lambda参数列表中的第一个参数是实例方法的调用者，而第二个参数是实例方法的参数时，
 * 可以使用 类::实例方法名。 这种方法引用的方式就不需要满足保证引用方法的参数列表、
 * 返回值类型与我们当前所要实现的函数式接口方法的参数列表、返回值类型保持一致这一规则了
 *
 */
public class ClassInstanceMethodReferTest {
    public static void main(String[] args) {
        BiPredicate<String, String> biPredicate = (a, b) -> a.equals(b);
        BiFunction<String, Integer, String> biFunction = (a, b) -> a+"--"+b;
        BiFunction<String, Integer, String> biFunction2 = String::substring;
        System.out.println(biFunction2.apply("apple", 3));
    }
}
